package org.nf.vrs.userservice.dao;

import org.apache.ibatis.annotations.Param;
import org.nf.vrs.userservice.dto.PageDTO;
import org.nf.vrs.userservice.entity.User;

import java.util.List;

/**
 * @author duang
 * @date 2022/3/29
 */
public interface UserDao {
    /**
     * 查询用户列表
     * @param user
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<User> listUser(@Param("user") User user,
                           @Param("pageNum") int pageNum,
                           @Param("pageSize") int pageSize);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    User getUserById(int id);

    /**
     * 根据电话查询用户信息
     * @param tel
     * @return
     */
    User findUserByTel(String tel);

    /**
     * 根据账号查找用户信息
     * @param userName
     * @return
     */
    List<User> queryUserByName(String userName);


    /**
     * 添加用户
     * @param user
     */
    void addUser(User user);

    /**
     * 删除用户信息
     * @param id
     */
    void delUser(int id);

    /**
     * 更新用户信息
     * @param user
     */
    void updateUser(User user);

    /**
     * 修改密码
     * @param uid
     * @param newPass
     */
    void changePwd(@Param("uid") Integer uid, @Param("newPass") String newPass);

    /**
     * 修改用户状态
     * @param uid
     * @param userStatus
     */
    void updateUserStatus(@Param("uid") Integer uid, @Param("userStatus") boolean userStatus);

    /**
     * 违规次数加1
     * @param id
     */
    void updateBreakCount(int id);
}